package org.example.spring.ioc.controller;

import com.sun.security.auth.UserPrincipal;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.ToString;
import org.example.spring.ioc.bean.person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Controller;

import java.util.List;
import java.util.Map;


@ToString
@Data
@Controller
public class UserController {
    /*
    * 自动装配流程（先按照类型，再按照名称）
    * 1、按照类型，找到这个组件；
    *      1.0、有且只找到一个，直接注入，名字无所谓
    *      1.1、如果找到多个，再按照名称去找；变量名就是名字
    *          1.1.1如果找到：直接注入
    *          1.1.2如果找不到，报错
    */
    @Autowired//自动装配： 原理：Spring 调用 容器.getBean
    UserService userService;

    @Autowired
    person bill;

    @Autowired//把这个类型的所有组件都注入
    List<person> personList;

    @Autowired
    Map<String,person> personMap;

    @Autowired
    ApplicationContext applicationContext;
}
